#include <iostream>
#include <cstring>

using namespace std;

const int N = 1e5 + 10;

int n;
int t[N], d[N], l[N];
bool st[N];

//有一种能行就true
bool dfs(int pos, int endt)
{
	if(pos > n) return true;

	for(int i = 1; i <= n; i++)
	{
		if(st[i]) continue;
		if(endt > t[i] + d[i]) continue;

		st[i] = true;
		int newend = max(t[i], endt) + l[i];
		if(dfs(pos + 1, newend)) return true;
		//恢复现场
		st[i] = false;
		newend -= max(t[i], endt) + l[i];
	}
	return false;
}

int main()
{
	int T; cin >> T;
	while(T--) // 多组测试数据的时候，一定要注意清空数据
	{
		memset(st, 0, sizeof st);

		//先编号
		cin >> n;
		for(int i = 1; i <= n; i++) cin >> t[i] >> d[i] >> l[i];

		if(dfs(1, 0)) cout << "YES" << endl;
		else cout << "NO" << endl;
	}

	return 0;
}

